from urllib.request import urlopen
from reportlab.graphics.shapes import *
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.graphics.charts.textlabels import Label
from reportlab.graphics import renderPDF

URL = 'https://solarscience.msfc.nasa.gov/greenwch/g1874.txt'
COMMENT_CHARS = ['#','*']

drawing = Drawing(400, 200)
data = []
# for line in urlopen(URL).readlines():
with open('SN_ms_hem_V2.0.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    # line = line.decode()
    for line in lines:
        # print(line)
        if not line.isspace() and "*" not in line:
            data.append([float(n) for n in line.split()])
# print(data)

pred = [row[3] for row in data]
high = [row[4] for row in data]
low = [row[5] for row in data]
times = [row[0] + row[1]/12.0for row in data]

lp = LinePlot()
lp.x = 50
lp.y = 50
lp.height = 125
lp.width = 300
lp.data = [list(zip(times, pred)),
           list(zip(times, high)),
           list(zip(times, low))]
lp.lines[0].strokeColor = colors.blue
lp.lines[1].strokeColor = colors.red
lp.lines[2].strokeColor = colors.green

drawing.add(lp)
drawing.add(String(250, 150, 'Sunspots',
                   fontsize=14, fillColor=colors.red))

renderPDF.drawToFile(drawing, 'report2.pdf', 'Sunspots')